package com.sky.chapter1.interrupte;

/**
 * @author : wushikai
 * <p>
 * date : 2021-03-25
 *
 * 主线程启动的一个子线程结束运行，我们就需要让这个子线程中断，不再继续执行。线程是有中断机制的，
 * 我们可以对每个线程进行中断标记，注意只是标记，中断与否还是虚拟机自己的事情
 *
 */

public class Interrupt {

    public static void main(String[] args) {

        A a = new Interrupt().new A();

        Thread t1 = new Thread(a);
        t1.setName("线程1");

        t1.start();
        //执行中断............
        t1.interrupt();

        System.out.println("执行睡眠之前1是否被中断："+t1.isInterrupted());

        try {

            System.out.println("执行睡眠之前2是否被中断："+t1.isInterrupted());

            t1.sleep(1000); //线程进入阻塞状态

        } catch (InterruptedException e) {

            e.printStackTrace();

        }finally {

            System.out.println("睡眠执行完毕之后是否被中断："+t1.isInterrupted());

        }

    }

    class A implements Runnable{

        @Override
        public void run() {

            System.out.println(Thread.currentThread().getName() + "  启动 ");

        }

    }
}
